package com.xy.blog.user.service;

import com.xy.blog.core.springmvc.result.page.PageReq;
import com.xy.blog.core.springmvc.result.page.PageResp;
import com.xy.blog.user.controller.model.req.query.UserTemplateQuery;
import com.xy.blog.user.service.model.AttrDictBO;
import com.xy.blog.user.service.model.UserTemplateBO;

import java.util.List;

/**
 * @author zanhonglei
 * @version V1.0
 * @Description:
 * @date 2019/11/17 5:34 下午
 */
public interface IUserTemplateService {


    /**
     * 添加用户模版
     *
     * @param name                     用户模版
     * @param code                     用户编码
     * @param defaultOpenAccountAttrId 默认开通账号属性id
     * @param attrDictIds              模版关联的属性id集合
     */
    void saveUserTemplate(String name, String code, Long defaultOpenAccountAttrId, List<Long> attrDictIds);

    /**
     * 根据Id更新模版
     * 包括属性更新
     *
     * @param id
     * @param name
     * @param userAttrIds
     */
    void updateUserTemplate(Long id, String name, List<Long> userAttrIds);

    /**
     * 根据id删除模版
     *
     * @param id
     */
    void deleteById(Long id);

    /**
     * 获取用户模版信息列表
     *
     * @param req
     * @return
     */
    PageResp<UserTemplateBO> listUserTemplate(PageReq<UserTemplateQuery> req);

    /**
     * 根据用户模版id查询，该模版下所有属性
     *
     * @param id
     * @return
     */
    List<AttrDictBO> listUserTemplateAttrByTemplateId(Long id);


    List<UserTemplateBO> listByName(String name);

}
